﻿/**
* @projectName   cvvision
* @file          IBLLParam.h
* @brief         BLL参数类
* @author        GuoFeng
* @contact        805305774@qq.com/feng.guo@micro-i.com.cn
* @date          2022-03-10
*/

#ifndef IBLLPARAM_H
#define IBLLPARAM_H

#include <QObject>
#include <QList>
#include "IBLLNodeParam.h"


namespace CVV {
namespace Interface {


class INTERFACE_EXPORT IBLLParam : public QObject
{
    Q_OBJECT
public:
    explicit IBLLParam(QObject *parent = nullptr);
    virtual ~IBLLParam();
    IBLLParam(const IBLLParam &obj);
    IBLLParam& operator =(const IBLLParam &obj);

    std::shared_ptr<IPluginParam> m_param;                              // 节点参数
    std::shared_ptr<IPluginParam> m_ifParam;                            // if嵌套if节点参数
    QList<QList<IBLLNodeParam>> m_lstYesNode;           // yes分支节点 平行分支默认都是yes
    QList<QList<IBLLNodeParam>> m_lstNoNode;            // no分支节点
    QString m_strBranchType;                            // 分支类型，parallel/if/while。。。。
    bool m_bIsYesBranch;                                // 嵌套分支是否是yes分支
    QString m_inputImageHeader;                         // 输入图像头部信息
    cv::Mat  m_inputImage;                               // 输入图像信息
};

}
}

#endif // IBLLPARAM_H
